package com.csipsimple.ext;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;


import java.util.ArrayList;

/** I'm in ur package. Stealing ur variables. */
public abstract class Watson extends FragmentActivity implements ActionBarSherlock.OnCreatePanelMenuListener, ActionBarSherlock.OnPreparePanelListener, ActionBarSherlock.OnMenuItemSelectedListener {
    private static final String TAG = "Watson";

    /** Fragment interface for menu creation callback. */
    public interface OnCreateOptionsMenuListener {
        public void onCreateOptionsMenu(Menu menu, MenuInflater inflater);
    }
    /** Fragment interface for menu preparation callback. */
    public interface OnPrepareOptionsMenuListener {
        public void onPrepareOptionsMenu(Menu menu);
    }
    /** Fragment interface for menu item selection callback. */
    public interface OnOptionsItemSelectedListener {
        public boolean onOptionsItemSelected(MenuItem item);
    }

    private ArrayList<Fragment> mCreatedMenus;
//
//
//    ///////////////////////////////////////////////////////////////////////////
//    // Sherlock menu handling
//    ///////////////////////////////////////////////////////////////////////////
//
//    @Override
//    public boolean onCreatePanelMenu(int featureId, Menu menu) {
//        if (ActionBarSherlock.DEBUG) Log.d(TAG, "[onCreatePanelMenu] featureId: " + featureId + ", menu: " + menu);
//
//        if (featureId == Window.FEATURE_OPTIONS_PANEL) {
//            boolean result = onCreateOptionsMenu(menu);
//            if (ActionBarSherlock.DEBUG) Log.d(TAG, "[onCreatePanelMenu] activity create result: " + result);
//
//            MenuInflater inflater = getSupportMenuInflater();
//            boolean show = false;
//            ArrayList<Fragment> newMenus = null;
//            if (mFragments.mAdded != null) {
//                for (int i = 0; i < mFragments.mAdded.size(); i++) {
//                    Fragment f = mFragments.mAdded.get(i);
//                    if (f != null && !f.mHidden && f.mHasMenu && f.mMenuVisible && f instanceof OnCreateOptionsMenuListener) {
//                        show = true;
//                        ((OnCreateOptionsMenuListener)f).onCreateOptionsMenu(menu, inflater);
//                        if (newMenus == null) {
//                            newMenus = new ArrayList<Fragment>();
//                        }
//                        newMenus.add(f);
//                    }
//                }
//            }
//
//            if (mCreatedMenus != null) {
//                for (int i = 0; i < mCreatedMenus.size(); i++) {
//                    Fragment f = mCreatedMenus.get(i);
//                    if (newMenus == null || !newMenus.contains(f)) {
//                        f.onDestroyOptionsMenu();
//                    }
//                }
//            }
//
//            mCreatedMenus = newMenus;
//
//            if (ActionBarSherlock.DEBUG) Log.d(TAG, "[onCreatePanelMenu] fragments create result: " + show);
//            result |= show;
//
//            if (ActionBarSherlock.DEBUG) Log.d(TAG, "[onCreatePanelMenu] returning " + result);
//            return result;
//        }
//        return false;
//    }
//
//    @Override
//    public boolean onPreparePanel(int featureId, View view, Menu menu) {
//        if (ActionBarSherlock.DEBUG) Log.d(TAG, "[onPreparePanel] featureId: " + featureId + ", view: " + view + " menu: " + menu);
//
//        if (featureId == Window.FEATURE_OPTIONS_PANEL) {
//            boolean result = onPrepareOptionsMenu(menu);
//            if (ActionBarSherlock.DEBUG) Log.d(TAG, "[onPreparePanel] activity prepare result: " + result);
//
//            boolean show = false;
//            if (mFragments.mAdded != null) {
//                for (int i = 0; i < mFragments.mAdded.size(); i++) {
//                    Fragment f = mFragments.mAdded.get(i);
//                    if (f != null && !f.mHidden && f.mHasMenu && f.mMenuVisible && f instanceof OnPrepareOptionsMenuListener) {
//                        show = true;
//                        ((OnPrepareOptionsMenuListener)f).onPrepareOptionsMenu(menu);
//                    }
//                }
//            }
//
//            if (ActionBarSherlock.DEBUG) Log.d(TAG, "[onPreparePanel] fragments prepare result: " + show);
//            result |= show;
//
//            result &= menu.hasVisibleItems();
//            if (ActionBarSherlock.DEBUG) Log.d(TAG, "[onPreparePanel] returning " + result);
//            return result;
//        }
//        return false;
//    }
//
//    @Override
//    public boolean onMenuItemSelected(int featureId, MenuItem item) {
//        if (ActionBarSherlock.DEBUG) Log.d(TAG, "[onMenuItemSelected] featureId: " + featureId + ", item: " + item);
//
//        if (featureId == Window.FEATURE_OPTIONS_PANEL) {
//            if (onOptionsItemSelected(item)) {
//                return true;
//            }
//
//            if (mFragments.mAdded != null) {
//                for (int i = 0; i < mFragments.mAdded.size(); i++) {
//                    Fragment f = mFragments.mAdded.get(i);
//                    if (f != null && !f.mHidden && f.mHasMenu && f.mMenuVisible && f instanceof OnOptionsItemSelectedListener) {
//                        if (((OnOptionsItemSelectedListener)f).onOptionsItemSelected(item)) {
//                            return true;
//                        }
//                    }
//                }
//            }
//        }
//        return false;
//    }
//
//    public abstract boolean onCreateOptionsMenu(Menu menu);
//
//    public abstract boolean onPrepareOptionsMenu(Menu menu);
//
//    public abstract boolean onOptionsItemSelected(MenuItem item);
//
//    public abstract MenuInflater getSupportMenuInflater();
}
